#include <stdio.h>
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/mman.h>

int main(void)
{
    void *ptr = NULL;
    pid_t pid;

    ptr = mmap(NULL, 1024, PROT_READ| PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);


    pid = fork();

    if (-1 == pid) {
        perror("fork()");
        return 1;
    }

    if (0 == pid) {
        memcpy(ptr, "hello world", 12);
        munmap(ptr, 1024);
        return 0;
    }

    wait(NULL);

    puts(ptr);
    munmap(ptr, 1024);

    return 0;
}

